<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // Set  ES6 提供了新的数据结构 Set。它类似于数组，但是成员的值都是唯一的，没有重复的值。


    // 如何创建Set结构  => 通过构造函数创建

    var s = new Set();
    console.log(s);


    // Set数据的属性和方法

    // 属性:
    // size  返回Set结构成员的个数(有几个元素)

    // 方法: 
    // add()     向Set数据结构中新增一个成员(新增元素)  =>     返回值: Set结构本身 可以接链式操作
    // delete()  删除Set数据结构的某个一个成员(删除单个元素)   返回值:删除成功 => true 删除失败 => false
    // clear()   清空Set数据结构(全删)                       返回值 undefined
    // has()     判断Set数据结构中是否存在某个成员(有没有)     返回值: 存在 => true  不存在 => false
    // forEach(function(val,key){})  Set数据结构的遍历方法

    // 注意: Set数据结构只有键值,没有键名, 或者或键名键值都是同一个值


    // add()  新增成功 
    // 1. 值类型 => 只要数值和类型相同即可
    // 2. 引用类型 => 要求引用同一片内存空间

    var arr = [1,2,3];
    s.add(1).add(2).add(3).add(1).add(2).add(3).add(arr).add(arr);
    
    // delete
    // console.log(s.delete(1));  // true
    // console.log(s.delete(2));
    // console.log(s.delete(3));
    // console.log(s.delete(arr));
    // console.log(s.delete(4)); // false

    // clear()
    // s.clear();  // undefined

    // has()
    // console.log(s.has(1));  // true
    // console.log(s.has(2));
    // console.log(s.has(3));
    // console.log(s.has(arr));
    // console.log(s.has(4)); // false


    // s.forEach(function(val,key){
    //     console.log(key,val);
    // })
    
    // console.log(s);
    // console.log(s.size);





</script>
</html>